Lightmap に寄与する自己発光 Shader
https://gyazo.com/e55669582f860c19a7aaca6f6478b031
いわゆる Emissive を GI の計算に寄与させる Shader
Unity: 2023.1 (URP: 15.0.6)
最低限の URP Unlit に Meta Pass を追加して, エディタ拡張で Global Illumination property を設定できるようにする. Meta Pass
エディタ拡張
https://gyazo.com/580963c0a718905bc88ce376af6df24d
Global Illumination property
code:cs
using UnityEditor;
using UnityEngine;
internal sealed class EmissiveShaderGUI : ShaderGUI
{
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
base.OnGUI(materialEditor, properties);
// Add Global Illumination drop down menu.
EditorGUI.BeginChangeCheck();
materialEditor.LightmapEmissionProperty();
if (EditorGUI.EndChangeCheck())
{
foreach (var o in materialEditor.targets)
{
if (o is Material m)
{
m.globalIlluminationFlags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack;
}
}
}
}
}
Baked に設定した場合は unity_MetaFragmentControl.y が有効になり, UnityMetaFragment 内の分岐でEmission が使用されるようになる
Refs